CA65 ?= ca65
LD65 ?= ld65

all: reconstructed.nes verify

prg.o: prg.s symbols.inc locals.inc prg.bin
	$(CA65) -g -o $@ $<

header.o: header.s header.bin
	$(CA65) -g -o $@ $<

chr.o: chr.s chr.bin
	$(CA65) -g -o $@ $<

reconstructed.nes: header.o prg.o chr.o linker.cfg
	$(LD65) -C linker.cfg -m reconstructed.map -Ln reconstructed.lbl -o $@ header.o prg.o chr.o

verify: reconstructed.nes rom.nes
	cmp reconstructed.nes rom.nes
	@echo "Byte-identical ROM verified."

regen:
	./regen.sh

clean:
	rm -f *.o reconstructed.nes reconstructed_prg.bin reconstructed.map reconstructed.lbl

.PHONY: all verify clean regen
